import pandas as pd
import os
from collections import Counter

# 设置目录路径，这里假设所有的xlsx文件都在当前目录下的data文件夹中
directory_path = 'data'

# 初始化一个Counter对象来统计身份证号出现的次数
id_counter = Counter()

# 遍历目录下的所有xlsx文件
for file_name in os.listdir(directory_path):
    if file_name.endswith('.xlsx'):
        # 构建完整的文件路径
        file_path = os.path.join(directory_path, file_name)

        # 读取xlsx文件
        df = pd.read_excel(file_path)

        # 假设身份证号在名为'身份证号'的列中
        id_column_name = '身份证号'

        # 如果列存在，则更新计数器
        if id_column_name in df.columns:
            id_counter.update(df[id_column_name].dropna().tolist())  # dropna()用于去除可能的NaN值
        else:
            print(f'在文件 {file_name} 中未找到名为"{id_column_name}"的列。')

# 将Counter对象转换为DataFrame
id_counts_df = pd.DataFrame(list(id_counter.items()), columns=[id_column_name, '出现次数'])

# 保存新的DataFrame为xlsx文件
output_file_name = '身份证出现次数统计.xlsx'
id_counts_df.to_excel(output_file_name, index=False)

print(f'统计完成，结果已保存到 {output_file_name}')
